Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ansi-mark

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ansi-mark

🖊️ a highlight marker for your color ansi strings

  • 1.0.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.8K
decreased by-10.88%
Maintainers
1
Weekly downloads
 
Created
Source

ansi-mark

🖊️ a highlight marker for your color ansi strings

Build Status Coverage Status NPM Version XO code style

Before and After

Before ANSI-Mark

After ANSI-Mark

Explanation

If your CLI app outputs strings containing ANSI color codes, like this...

const ansiStr = '\u001b[37m\u001b[33m<\u001b[36mbody\u001b[33m>\u001b[37m            \u001b[39m\n\u001b[37m\t\u001b[33m<\u001b[36mspan\u001b[33m>\u001b[37mGood\u001b[33m</\u001b[36mspan\u001b[33m>\u001b[37m\u001b[39m\n\u001b[37m\t\u001b[33m<\u001b[36mspan\u001b[33m>\u001b[37mBad\u001b[33m<\u001b[36mspan\u001b[33m>\u001b[37m  \u001b[39m\n\u001b[37m\u001b[33m<\u001b[36mbody\u001b[33m>\u001b[37m            \u001b[39m\n\u001b[37m\u001b[39m'
console.log(ansiStr)

Before ANSI-Mark

... then your ANSI string contains visible, and invisible characters. This makes it difficult if you want to highlight a portion of your string. The start and end position of your highlight needs to account for the invisible characters.

But wouldn't it be simpler for everyone if there was a Node Module that let you highlight a sub-string using the offsets of the visible characters?

That is what ansi-mark does:

const chalk = require('chalk')

const opts = {
    start: {line: 3, column: 11},
    end: {line: 4, column: 7},
    color: chalk.bgRed.white.bold,
    resetColor: true
}

const result = ansiMark(ansiStr, opts)

After ANSI-Mark

Keep Colors

If you want to keep the underlying colors in the portion of the string you are highlighting, use the resetColor: false option:

const chalk = require('chalk')

const opts = {
    start: {line: 3, column: 11},
    end: {line: 4, column: 7},
    color: chalk.bgBlack
    resetColor: false
}

const result = ansiMark(ansiStr, opts)

After ANSI-Mark Keep Color

Using Offsets

You can also highlight by a linear character offset rather than lines and columns

const chalk = require('chalk')

const opts = {
    start: 46,
    end: 64,
    color: chalk.bgRed.white.bold,
    resetColor: true
}

const result = ansiMark(ansiStr, opts)

After ANSI-Mark

Install

$ yarn add ansi-mark

FAQs

Package last updated on 24 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc